www.gusucode.com > LTE基带收发仿真系统matlab源码程序 > LTE baseband simulation/de_scramble.m

    function f = de_scramble(recScrambleBit,iCW,RNTI,iSubFrame,cellID)
% 功能:解扰 扰码序列对应比特为0,则不改变软信息量的符号,如果对于比特为1,改变软信息量的符号
% 输入:
%      recScrambleBit:解解调后的软信息,作为解扰的输入
%                 iCW:第iCW个码字
%                RNTI:小区特定加扰参数
%           iSubFrame:子帧号
%              cellID:小区ID
% 输出:       
%                   f:解扰后的软信息
% 
%  Author:		程式小组(徐萌 张妙 张晓庆)
%  Date:		2010-07-11
%  ===========================================================
ns = iSubFrame*2;                  % 偶数时隙号
Nc = 1600;                         % 恒定常数




nBit = size(recScrambleBit,2);     %下行传输码字数,每码字比特数
nPN = nBit;                             %PN序列长度等于每码字比特数

% % =========== pseudo-random 序列生成 ================================
% % 生成公式为c(n) = (x1(n+Nc)+x2(n+Nc))mod 2,先求x1和x2

x1 = zeros(1,nPN+Nc);
x2 = zeros(1,nPN+Nc);

x1(1,1:31) = bitget(1,1:31);

% PDSCH 加扰初始化
    if mod(ns,2) == 0                            %每个subframe开始时初始化
        c_init = RNTI*2^14+(iCW-1)*2^13+floor(ns/2)*2^9+cellID;
        x2(1:31) = bitget(c_init,1:31);
    end


for n = 1:nPN+Nc-31
    x1(1,n+31) = mod((x1(n+3)+x1(n)),2);
    x2(n+31) = mod((x2(n+3)+x2(n+2)+x2(n+1)+x2(n)),2);
end


c = mod((x1(1+Nc:end)+x2(1+Nc:end)),2); %扰码 0 1 序列
c = -1*(c*2-ones(size(c))); % 将0转为1 1转为-1 通过对应位相乘实现解扰
f = c.*recScrambleBit;